package org.example.controller;

import org.example.common.JsonCode;
import org.example.entity.Student;
import org.example.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/student")
public class StudentController2 {
    // 这个 controller 用于处理 restful 风格的请求

    /*
    *
    *   restful 风格的请求方式: http://localhost:8081/xxx/xxx/A00001,把参数作为路径的一部分
    *   规定: 1. 查询发get请求
    *        2. 删除发delete请求
    *        3. 添加发post请求
    *        4. 修改发put请求
    *
    * */

    @Autowired
    private StudentService studentService;

    // 根据id查询单条
    @GetMapping("/{id}")
    public Student getById(@PathVariable String id) {
        // @PathVariable 注解搭配 restful 风格传递参数,表示将路径上的参数转换为方法的形参
        return studentService.getById(id);
    }

    // 添加数据
    @PostMapping
    public JsonCode add(Student s){
        studentService.insert(s);
        return JsonCode.getJson();
    }

    // 修改数据
    @PutMapping
    public JsonCode update(Student s){
        studentService.update(s);
        return JsonCode.getJson();
    }

    // 根据id删除数据
    @DeleteMapping("/{id}")
    public JsonCode delete(@PathVariable String id) {
        studentService.delete(id);
        return JsonCode.getJson();
    }

}
